admin
2021-04-16 6e365a48a83e628759df3a5f25b3db97009c9f26
影视豆系统完善
7个文件已修改
16个文件已添加
1124 ■■■■■ 已修改文件
pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/api/GoldCornController.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/api/VideoInfoController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dao/goldcorn/GoldCornTaskActionDetailDao.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/domain/goldcorn/CodeCornConsumeSourceType.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/domain/goldcorn/CodeCornGetSourceType.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/domain/goldcorn/GoldCornTaskActionDetail.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/domain/jump/JumpTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/dto/goldcorn/SignInGoldCornDateData.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/exception/goldcorn/SignInException.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/goldcorn/GoldCornTaskActionDetailServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/imp/goldcorn/SignInServiceImpl.java 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/goldcorn/GoldCornTaskActionDetailService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/inter/goldcorn/SignInService.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/service/manager/GoldCornManager.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/vo/goldcorn/GoldCornCouponVideoVO.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/vo/goldcorn/GoldCornRecordVO.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/vo/goldcorn/GoldCornTaskVO.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/vo/goldcorn/SignInInfoVO.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/WEB-INF/lib/facade-goldcorn-0.0.1.jar 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/ConfigTest.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/GeneralTest.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/hxh/spring/test/goldcorn/GoldCornTest.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -893,7 +893,7 @@
                        <id>install-facade-goldcorn</id>
                        <phase>clean</phase>
                        <configuration>
                            <file>${basedir}/libs/facade-goldcorn-0.0.1.jar</file>
                            <file>${basedir}/src/main/webapp/WEB-INF/lib/facade-goldcorn-0.0.1.jar</file>
                            <repositoryLayout>default</repositoryLayout>
                            <groupId>com.ks</groupId>
                            <artifactId>facade-goldcorn</artifactId>
src/main/java/com/yeshi/buwan/controller/api/GoldCornController.java
New file
@@ -0,0 +1,246 @@
package com.yeshi.buwan.controller.api;
import com.google.common.base.Function;
import com.google.common.collect.Maps;
import com.google.gson.Gson;
import com.ks.goldcorn.exception.GoldAppException;
import com.ks.goldcorn.exception.GoldTradeException;
import com.ks.goldcorn.exception.GoldUserException;
import com.ks.goldcorn.pojo.DO.GoldCornGetSource;
import com.ks.goldcorn.pojo.DO.GoldCornRecord;
import com.ks.goldcorn.pojo.DO.GoldCornRecordCountMap;
import com.ks.goldcorn.pojo.Query.GoldCornRecordQuery;
import com.yeshi.buwan.domain.goldcorn.CodeCornGetSourceType;
import com.yeshi.buwan.domain.goldcorn.GoldCornTaskActionDetail;
import com.yeshi.buwan.domain.jump.JumpDetail;
import com.yeshi.buwan.domain.jump.JumpTypeEnum;
import com.yeshi.buwan.dto.goldcorn.SignInGoldCornDateData;
import com.yeshi.buwan.service.inter.goldcorn.GoldCornTaskActionDetailService;
import com.yeshi.buwan.service.inter.goldcorn.SignInService;
import com.yeshi.buwan.service.inter.system.SystemConfigService;
import com.yeshi.buwan.service.manager.GoldCornManager;
import com.yeshi.buwan.util.Constant;
import com.yeshi.buwan.util.JsonUtil;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
import com.yeshi.buwan.vo.AcceptData;
import com.yeshi.buwan.vo.goldcorn.GoldCornCouponVideoVO;
import com.yeshi.buwan.vo.goldcorn.GoldCornRecordVO;
import com.yeshi.buwan.vo.goldcorn.GoldCornTaskVO;
import com.yeshi.buwan.vo.goldcorn.SignInInfoVO;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.*;
@Controller
@RequestMapping("api/v2/goldcorn")
public class GoldCornController {
    Logger logger = LoggerFactory.getLogger(GoldCornController.class);
    @Resource
    private GoldCornManager goldCornManager;
    @Resource
    private SignInService signInService;
    @Resource
    private SystemConfigService systemConfigService;
    @Resource
    private GoldCornTaskActionDetailService goldCornTaskActionDetailService;
    /**
     * 挣金币
     *
     * @param acceptData
     * @param code
     * @param loginUid
     * @param param1
     * @param param2
     * @return
     */
    @RequestMapping("makeGoldCorn")
    @ResponseBody
    public String makeGoldCorn(AcceptData acceptData, String code, String loginUid, String param1, String param2) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("goldCorn", 1);
        return JsonUtil.loadTrueJson(jsonObject.toString());
    }
    @RequestMapping("signIn")
    @ResponseBody
    public String signIn(AcceptData acceptData, String loginUid) {
        try {
            GoldCornGetSource source = goldCornManager.getGoldCornGetSource(CodeCornGetSourceType.signIn);
            goldCornManager.addGoldCorn(loginUid, CodeCornGetSourceType.signIn, null, "签到", null);
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("goldCorn", source.getGoldCorn());
            return JsonUtil.loadTrueJson(jsonObject.toString());
        } catch (GoldUserException e) {
            return JsonUtil.loadFalseJson(e.getMessage());
        } catch (GoldAppException e) {
            return JsonUtil.loadFalseJson(e.getMessage());
        } catch (GoldTradeException e) {
            return JsonUtil.loadFalseJson(e.getMessage());
        } catch (Exception e) {
            return JsonUtil.loadFalseJson("签到失败");
        }
    }
    @RequestMapping("getSignInData")
    @ResponseBody
    public String getSignInData(AcceptData acceptData, String loginUid) {
        try {
            SignInInfoVO signInInfo = new SignInInfoVO();
            List<SignInGoldCornDateData> recordList = signInService.getContinueSignInList(loginUid);
            signInInfo.setDateList(recordList);
            signInInfo.setSignDay(signInService.getContinueSignDayCount(loginUid));
            signInInfo.setBalance((int) goldCornManager.getBalance(loginUid));
            SignInInfoVO.SignInConfig config = new SignInInfoVO.SignInConfig();
            config.setRecordUrl(systemConfigService.getConfigValueByKeyCache("goldCornRecordUrl"));
            config.setRuleUrl(systemConfigService.getConfigValueByKeyCache("goldCornRuleUrl"));
            signInInfo.setSignInConfig(config);
            signInInfo.setCanSignIn(!signInService.isTodaySignIned(loginUid, new Date()));
            return JsonUtil.loadTrueJson(new Gson().toJson(signInInfo));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return JsonUtil.loadFalseJson("服务器内部错误");
    }
    /**
     * 获取金币记录
     *
     * @param acceptData
     * @param loginUid
     * @param page
     * @return
     */
    @RequestMapping("getRecordList")
    @ResponseBody
    public String getRecordList(AcceptData acceptData, String loginUid, int page) {
        GoldCornRecordQuery recordQuery = new GoldCornRecordQuery();
        recordQuery.setPageSize(Constant.pageCount);
        recordQuery.setPage(page);
        try {
            List<GoldCornRecord> list = goldCornManager.getRecordList(recordQuery, loginUid);
            List<GoldCornRecordVO> voList = new ArrayList<>();
            for (GoldCornRecord record : list) {
                voList.add(new GoldCornRecordVO(record.getTitle(), TimeUtil.getGernalTime(record.getCreateTime().getTime(), "yyyy.MM.dd HH:mm"), record.getType() == GoldCornRecord.TYPE_CONSUME ? 0 - record.getGoldCorn() : record.getGoldCorn()));
            }
            long count = goldCornManager.getRecordCount(recordQuery, loginUid);
            JSONObject data = new JSONObject();
            data.put("list", new Gson().toJson(voList));
            data.put("count", count);
            return JsonUtil.loadTrueJson(data.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return JsonUtil.loadFalseJson("服务器内部错误");
    }
    @RequestMapping("getCouponVideoList")
    @ResponseBody
    public String getCouponVideoList(AcceptData acceptData) {
        List<GoldCornCouponVideoVO> voList = new ArrayList<>();
        JumpDetail jumpDetail = new JumpDetail();
        jumpDetail.setType(JumpTypeEnum.web);
        JSONObject params = new JSONObject();
        params.put("url", "https://www.baidu.com");
        voList.add(new GoldCornCouponVideoVO("https://r1.ykimg.com/058400005FA60E6A14187C0791817503?x-oss-process=image/resize,w_290/interlace,1/quality,Q_80", jumpDetail, params.toString().replace("\"", "\\" + "\"")));
        voList.add(new GoldCornCouponVideoVO("https://r1.ykimg.com/058400005F2BA59B6AEB660E907A2B99?x-oss-process=image/resize,w_290/interlace,1/quality,Q_80", jumpDetail, params.toString().replace("\"", "\\" + "\"")));
        voList.add(new GoldCornCouponVideoVO("https://r1.ykimg.com/052700005DC9247B1B769182B50A8C21?x-oss-process=image/resize,w_290/interlace,1/quality,Q_80", jumpDetail, params.toString().replace("\"", "\\" + "\"")));
//        if (voList.size() < 3)
        voList.clear();
        JSONObject data = new JSONObject();
        data.put("list", new Gson().toJson(voList));
        data.put("count", voList.size());
        data.put("exchangeUrl", "http://www.baidu.com");
        return JsonUtil.loadTrueJson(data.toString());
    }
    @RequestMapping("getTaskList")
    @ResponseBody
    public String getTaskList(AcceptData acceptData, String loginUid) {
        List<GoldCornTaskVO> voList = new ArrayList<>();
        try {
            //登录
            List<GoldCornGetSource> list = goldCornManager.listGetCornSource(1, 20);
            List<String> sourceCodes = new ArrayList<>();
            for (GoldCornGetSource source : list) {
                sourceCodes.add(source.getSourceCode());
            }
            List<GoldCornTaskActionDetail> details = goldCornTaskActionDetailService.list(sourceCodes);
            Map<String, GoldCornTaskActionDetail> detailMap = Maps.uniqueIndex(details.iterator(), new Function<GoldCornTaskActionDetail, String>() {
                @Override
                public String apply(GoldCornTaskActionDetail detail) {
                    return detail.getSourceCode();
                }
            });
            //加载已完成数据
            Date maxCreateTime = new Date();
            Date minCreateTime = new Date(TimeUtil.convertGernalTime(TimeUtil.getGernalTime(maxCreateTime.getTime(), "yyyyMMdd"), "yyyyMMdd"));
            List<GoldCornRecordCountMap> mapList = goldCornManager.countRecordByGetSource(loginUid, sourceCodes, minCreateTime, maxCreateTime);
            Map<String, GoldCornRecordCountMap> map = new HashMap<>();
            if (mapList != null)
                for (GoldCornRecordCountMap m : mapList) {
                    map.put(m.getSourceCode(), m);
                }
            String[] hiddens = new String[]{CodeCornGetSourceType.elme.name(), CodeCornGetSourceType.meituan.name()};
            List<String> hiddenList = Arrays.asList(hiddens);
            for (GoldCornGetSource source : list) {
                GoldCornTaskVO vo = GoldCornTaskVO.create(source);
                //详细的信息
                GoldCornTaskActionDetail detail = detailMap.get(source.getSourceCode());
                if (detail != null) {
                    vo.setJumpDetail(detail.getJumpDetail());
                    vo.setParams(detail.getParams());
                    vo.setActionName(detail.getActionName());
                }
                if (!hiddenList.contains(source.getSourceCode())) {
                    if (map.get(source.getSourceCode()) == null) {
                        source.setSourceDesc(String.format("今日已完成%s/%s", 0, source.getMaxDayCount()));
                    } else {
                        vo.setEnable(map.get(source.getSourceCode()).getCount() < source.getMaxDayCount());
                        source.setSourceDesc(String.format("今日已完成%s/%s", map.get(source.getSourceCode()).getCount(), source.getMaxDayCount()));
                    }
                } else {
                    vo.setGoldCorn("实付款*" + source.getGoldCorn());
                }
                voList.add(vo);
            }
        } catch (Exception e) {
        }
        JSONObject data = new JSONObject();
        data.put("list", new Gson().toJson(voList));
        data.put("count", voList.size());
        return JsonUtil.loadTrueJson(data.toString());
    }
}
src/main/java/com/yeshi/buwan/controller/api/VideoInfoController.java
@@ -1,44 +1,31 @@
package com.yeshi.buwan.controller.api;
import com.google.gson.*;
import com.ks.goldcorn.service.remote.GoldCornBalanceService;
import com.yeshi.buwan.domain.VideoInfo;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.buwan.domain.user.LoginUser;
import com.yeshi.buwan.domain.vip.*;
import com.yeshi.buwan.domain.vip.OrderRecord;
import com.yeshi.buwan.domain.vip.OrderType;
import com.yeshi.buwan.dto.order.PPTVVideoPrice;
import com.yeshi.buwan.exception.goldcorn.GoldCornException;
import com.yeshi.buwan.exception.order.OrderException;
import com.yeshi.buwan.exception.order.PayException;
import com.yeshi.buwan.pptv.PPTVUtil;
import com.yeshi.buwan.pptv.entity.PPTVSeries;
import com.yeshi.buwan.pptv.entity.VideoPPTVMap;
import com.yeshi.buwan.service.inter.LoginUserService;
import com.yeshi.buwan.service.inter.juhe.PPTVService;
import com.yeshi.buwan.service.inter.order.OrderService;
import com.yeshi.buwan.service.inter.system.SystemConfigService;
import com.yeshi.buwan.service.inter.vip.VIPPriceService;
import com.yeshi.buwan.service.inter.vip.VIPService;
import com.yeshi.buwan.service.manager.GoldCornManager;
import com.yeshi.buwan.util.*;
import com.yeshi.buwan.util.factory.VideoInfoFactory;
import com.yeshi.buwan.util.user.VipUtil;
import com.yeshi.buwan.util.vip.VIPOrderUtil;
import com.yeshi.buwan.util.JsonUtilV2;
import com.yeshi.buwan.vo.AcceptData;
import com.yeshi.buwan.vo.client.user.UserInfoVO;
import net.sf.json.JSONObject;
import org.apache.dubbo.config.annotation.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.yeshi.utils.StringUtil;
import org.yeshi.utils.annotation.RequestSerializableByKey;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Type;
import java.util.*;
import java.util.HashSet;
import java.util.Set;
@Controller
@RequestMapping("api/v2/videoinfo")
src/main/java/com/yeshi/buwan/dao/goldcorn/GoldCornTaskActionDetailDao.java
New file
@@ -0,0 +1,34 @@
package com.yeshi.buwan.dao.goldcorn;
import com.yeshi.buwan.domain.goldcorn.GoldCornTaskActionDetail;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository;
import java.util.Date;
@Repository
public class GoldCornTaskActionDetailDao extends MongodbBaseDao<GoldCornTaskActionDetail> {
    public void updateSelective(GoldCornTaskActionDetail bean) {
        Query query = new Query();
        Update update = new Update();
        query.addCriteria(Criteria.where("sourceCode").is(bean.getSourceCode()));
        if (bean.getJumpDetail() != null) {
            update.set("jumpDetail", bean.getJumpDetail());
        }
        if (bean.getParams() != null) {
            update.set("params", bean.getParams());
        }
        if (bean.getActionName() != null) {
            update.set("actionName", bean.getActionName());
        }
        if (bean.getCreateTime() != null) {
            update.set("createTime", bean.getCreateTime());
        }
        update.set("updateTime", new Date());
        update(query, update);
    }
}
src/main/java/com/yeshi/buwan/domain/goldcorn/CodeCornConsumeSourceType.java
New file
@@ -0,0 +1,8 @@
package com.yeshi.buwan.domain.goldcorn;
public enum CodeCornConsumeSourceType {
}
src/main/java/com/yeshi/buwan/domain/goldcorn/CodeCornGetSourceType.java
New file
@@ -0,0 +1,10 @@
package com.yeshi.buwan.domain.goldcorn;
public enum CodeCornGetSourceType {
    watchHighVideo,
    elme,
    meituan,
    searchVideo,
    watchRewardAd,
    signIn;
}
src/main/java/com/yeshi/buwan/domain/goldcorn/GoldCornTaskActionDetail.java
New file
@@ -0,0 +1,67 @@
package com.yeshi.buwan.domain.goldcorn;
import com.yeshi.buwan.domain.jump.JumpDetail;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date;
@Document(collection = "goldCornTaskActionDetail")
public class GoldCornTaskActionDetail {
    @Id
    private String sourceCode;
    private JumpDetail jumpDetail;
    private String params;
    private String actionName;
    private Date createTime;
    private Date updateTime;
    public String getSourceCode() {
        return sourceCode;
    }
    public void setSourceCode(String sourceCode) {
        this.sourceCode = sourceCode;
    }
    public JumpDetail getJumpDetail() {
        return jumpDetail;
    }
    public void setJumpDetail(JumpDetail jumpDetail) {
        this.jumpDetail = jumpDetail;
    }
    public String getParams() {
        return params;
    }
    public void setParams(String params) {
        this.params = params;
    }
    public String getActionName() {
        return actionName;
    }
    public void setActionName(String actionName) {
        this.actionName = actionName;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
}
src/main/java/com/yeshi/buwan/domain/jump/JumpTypeEnum.java
@@ -2,7 +2,7 @@
public enum JumpTypeEnum {
    baichuan("百川"), web("网页"),clazz("类");
    baichuan("百川"), web("网页"),clazz("类"),rewardVideo("激励视频"),wxxcx("微信小程序");
    private String name;
src/main/java/com/yeshi/buwan/dto/goldcorn/SignInGoldCornDateData.java
New file
@@ -0,0 +1,31 @@
package com.yeshi.buwan.dto.goldcorn;
public class SignInGoldCornDateData {
    private String goldCorn;
    private String date;
    private boolean selected;
    public String getGoldCorn() {
        return goldCorn;
    }
    public void setGoldCorn(String goldCorn) {
        this.goldCorn = goldCorn;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public boolean isSelected() {
        return selected;
    }
    public void setSelected(boolean selected) {
        this.selected = selected;
    }
}
src/main/java/com/yeshi/buwan/exception/goldcorn/SignInException.java
New file
@@ -0,0 +1,14 @@
package com.yeshi.buwan.exception.goldcorn;
public class SignInException extends Exception {
    private int code;
    private String msg;
    public SignInException(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
}
src/main/java/com/yeshi/buwan/service/imp/goldcorn/GoldCornTaskActionDetailServiceImpl.java
New file
@@ -0,0 +1,33 @@
package com.yeshi.buwan.service.imp.goldcorn;
import com.yeshi.buwan.dao.goldcorn.GoldCornTaskActionDetailDao;
import com.yeshi.buwan.domain.goldcorn.GoldCornTaskActionDetail;
import com.yeshi.buwan.service.inter.goldcorn.GoldCornTaskActionDetailService;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
public class GoldCornTaskActionDetailServiceImpl implements GoldCornTaskActionDetailService {
    @Resource
    private GoldCornTaskActionDetailDao goldCornTaskActionDetailDao;
    @Override
    public List<GoldCornTaskActionDetail> list(List<String> sourceCodes) {
        Query query = new Query();
        List<Criteria> criteriaList = new ArrayList<>();
        for (String code : sourceCodes) {
            criteriaList.add(Criteria.where("_id").is(code));
        }
        Criteria[] cs = new Criteria[criteriaList.size()];
        criteriaList.toArray(cs);
        query.addCriteria(new Criteria().orOperator(cs));
        return goldCornTaskActionDetailDao.findList(query);
    }
}
src/main/java/com/yeshi/buwan/service/imp/goldcorn/SignInServiceImpl.java
New file
@@ -0,0 +1,184 @@
package com.yeshi.buwan.service.imp.goldcorn;
import com.ks.goldcorn.exception.GoldAppException;
import com.ks.goldcorn.exception.GoldTradeException;
import com.ks.goldcorn.exception.GoldUserException;
import com.ks.goldcorn.pojo.DO.GoldCornGetSource;
import com.ks.goldcorn.pojo.DO.GoldCornRecord;
import com.ks.goldcorn.pojo.Query.GoldCornRecordQuery;
import com.yeshi.buwan.domain.goldcorn.CodeCornGetSourceType;
import com.yeshi.buwan.dto.goldcorn.SignInGoldCornDateData;
import com.yeshi.buwan.exception.goldcorn.SignInException;
import com.yeshi.buwan.exception.user.LoginUserException;
import com.yeshi.buwan.service.inter.goldcorn.SignInService;
import com.yeshi.buwan.service.manager.GoldCornManager;
import com.yeshi.buwan.util.StringUtil;
import com.yeshi.buwan.util.TimeUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
@Service
public class SignInServiceImpl implements SignInService {
    @Resource
    private GoldCornManager goldCornManager;
    @Override
    public Integer signIn(String uid) throws LoginUserException, SignInException {
        try {
            GoldCornGetSource source = goldCornManager.getGoldCornGetSource(CodeCornGetSourceType.signIn);
            int dayCount = getContinueSignDayCount(uid);
            dayCount = dayCount == 6 ? 6 : dayCount % 6;
            int goldCorn = (dayCount + 1) * source.getGoldCorn();
            goldCornManager.addGoldCorn(uid, CodeCornGetSourceType.signIn, goldCorn, "签到", String.format("连续%s天签到", (dayCount + 1)));
            return goldCorn;
        } catch (GoldUserException e) {
            throw new LoginUserException(e.getCode(), e.getMsg());
        } catch (GoldAppException e) {
            throw new SignInException(1, "服务器内部出错");
        } catch (GoldTradeException e) {
            throw new SignInException(e.getCode(), e.getMsg());
        } catch (Exception e) {
            throw new SignInException(1, "服务器内部出错");
        }
    }
    @Override
    public int getContinueSignDayCount(String uid) throws Exception {
        if (StringUtil.isNullOrEmpty(uid)) {
            return 0;
        }
        GoldCornRecordQuery query = new GoldCornRecordQuery();
        query.setType(GoldCornRecord.TYPE_GET);
        query.setSourceCodes(Arrays.asList(new String[]{CodeCornGetSourceType.signIn.name()}));
        query.setPage(1);
        query.setPageSize(200);
        List<GoldCornRecord> recordList = goldCornManager.getRecordList(query, uid);
        return getContinueSignDayCount(recordList) + (isTodaySignIned(uid, new Date()) ? 1 : 0);
    }
    @Override
    public List<SignInGoldCornDateData> getContinueSignInList(String uid) throws GoldAppException {
        GoldCornRecordQuery query = new GoldCornRecordQuery();
        query.setType(GoldCornRecord.TYPE_GET);
        query.setSourceCodes(Arrays.asList(new String[]{CodeCornGetSourceType.signIn.name()}));
        query.setPage(1);
        query.setPageSize(7);
        GoldCornGetSource source = goldCornManager.getGoldCornGetSource(CodeCornGetSourceType.signIn);
        int goldCorn = source.getGoldCorn();
        List<SignInGoldCornDateData> list = new ArrayList<>();
        for (int i = 0; i < 7; i++) {
            SignInGoldCornDateData dateData = new SignInGoldCornDateData();
            dateData.setGoldCorn("+" + (i + 1) * goldCorn);
            list.add(dateData);
        }
        int dayCount = 0;
        //填充用户数据
        if (!StringUtil.isNullOrEmpty(uid)) {
            try {
                List<GoldCornRecord> recordList = goldCornManager.getRecordList(query, uid);
                Map<Integer, Integer> dayCountMap = getContinueSignDayCountMap(recordList);
                dayCount = dayCountMap.size() == 6 ? 6 : dayCountMap.size() % 6;
                //设置金币与选中
                for (int i = 0; i < dayCount; i++) {
                    list.get(i).setGoldCorn("+" + dayCountMap.get(dayCount - i - 1));
                    list.get(i).setSelected(true);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        //设置日期
        long now = System.currentTimeMillis();
        boolean isTodaySigned = isTodaySignIned(uid, new Date(now));
        for (int i = 0; i < list.size(); i++) {
            list.get(i).setDate(TimeUtil.getGernalTime(now - (dayCount - i - (isTodaySigned ? 1 : 0)) * 1000 * 60 * 60 * 24L, "M.d"));
            if (i == dayCount - (isTodaySigned ? 1 : 0)) {
                list.get(i).setDate("今天");
            }
        }
        return list;
    }
    @Override
    public boolean isTodaySignIned(String uid, Date time) {
        if (StringUtil.isNullOrEmpty(uid)) {
            return false;
        }
        GoldCornRecordQuery query = new GoldCornRecordQuery();
        query.setType(GoldCornRecord.TYPE_GET);
        query.setSourceCodes(Arrays.asList(new String[]{CodeCornGetSourceType.signIn.name()}));
        query.setPage(1);
        query.setPageSize(1);
        try {
            List<GoldCornRecord> recordList = goldCornManager.getRecordList(query, uid);
            if (recordList == null || recordList.size() == 0)
                return false;
            if (TimeUtil.getGernalTime(recordList.get(0).getCreateTime().getTime(), "yyyyMMdd").equalsIgnoreCase(TimeUtil.getGernalTime(time.getTime(), "yyyyMMdd"))) {
                return true;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    /**
     * 获取是第几次签到
     *
     * @param recordList
     * @return
     */
    private int getContinueSignDayCount(List<GoldCornRecord> recordList) {
        int position = 0;
        long lastTime = TimeUtil.convertGernalTime(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"), "yyyy-MM-dd");
        if (recordList != null)
            for (int i = 0; i < recordList.size(); i++) {
                long time = TimeUtil.convertGernalTime(TimeUtil.getGernalTime(recordList.get(i).getCreateTime().getTime(), "yyyy-MM-dd"), "yyyy-MM-dd");
                if (lastTime - time == 1000 * 60 * 60 * 24L) {
                    position++;
                    lastTime = time;
                } else if (lastTime - time < 1000 * 60 * 60 * 24L) {
                    continue;
                } else {
                    break;
                }
            }
        return position;
    }
    private Map<Integer, Integer> getContinueSignDayCountMap(List<GoldCornRecord> recordList) {
        Map<Integer, Integer> map = new TreeMap<>();
        int position = 0;
        long lastTime = TimeUtil.convertGernalTime(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"), "yyyy-MM-dd");
        if (recordList != null)
            for (int i = 0; i < recordList.size(); i++) {
                long time = TimeUtil.convertGernalTime(TimeUtil.getGernalTime(recordList.get(i).getCreateTime().getTime(), "yyyy-MM-dd"), "yyyy-MM-dd");
                if (lastTime - time == 1000 * 60 * 60 * 24L) {
                    position++;
                    lastTime = time;
                    map.put(position, recordList.get(i).getGoldCorn());
                } else if (lastTime - time < 1000 * 60 * 60 * 24L) {
                    map.put(position, recordList.get(i).getGoldCorn());
                    continue;
                } else {
                    break;
                }
            }
        return map;
    }
}
src/main/java/com/yeshi/buwan/service/inter/goldcorn/GoldCornTaskActionDetailService.java
New file
@@ -0,0 +1,11 @@
package com.yeshi.buwan.service.inter.goldcorn;
import com.yeshi.buwan.domain.goldcorn.GoldCornTaskActionDetail;
import java.util.List;
public interface GoldCornTaskActionDetailService {
    public List<GoldCornTaskActionDetail> list(List<String> sourceCodes);
}
src/main/java/com/yeshi/buwan/service/inter/goldcorn/SignInService.java
New file
@@ -0,0 +1,35 @@
package com.yeshi.buwan.service.inter.goldcorn;
import com.ks.goldcorn.exception.GoldAppException;
import com.yeshi.buwan.dto.goldcorn.SignInGoldCornDateData;
import com.yeshi.buwan.exception.goldcorn.SignInException;
import com.yeshi.buwan.exception.user.LoginUserException;
import java.util.Date;
import java.util.List;
public interface SignInService {
    /**
     * 签到
     *
     * @param uid
     * @return
     * @throws SignInException
     */
    public Integer signIn(String uid) throws LoginUserException, SignInException;
    public int getContinueSignDayCount(String uid) throws Exception;
    public List<SignInGoldCornDateData> getContinueSignInList(String uid) throws GoldAppException;
    /**
     * 今日是否签到
     * @param uid
     * @param time
     * @return
     */
    public boolean isTodaySignIned(String uid, Date time);
}
src/main/java/com/yeshi/buwan/service/manager/GoldCornManager.java
@@ -3,8 +3,15 @@
import com.ks.goldcorn.exception.GoldAppException;
import com.ks.goldcorn.exception.GoldTradeException;
import com.ks.goldcorn.exception.GoldUserException;
import com.ks.goldcorn.pojo.DO.GoldCornGetSource;
import com.ks.goldcorn.pojo.DO.GoldCornRecord;
import com.ks.goldcorn.pojo.DO.GoldCornRecordCountMap;
import com.ks.goldcorn.pojo.Query.GoldCornRecordQuery;
import com.ks.goldcorn.service.remote.GoldCornBalanceService;
import com.ks.goldcorn.service.remote.GoldCornGetSourceService;
import com.ks.goldcorn.service.remote.GoldCornRecordService;
import com.ks.goldcorn.service.remote.GoldCornTradeService;
import com.yeshi.buwan.domain.goldcorn.CodeCornGetSourceType;
import com.yeshi.buwan.domain.vip.OrderType;
import com.yeshi.buwan.domain.vip.OrderRecord;
import com.yeshi.buwan.exception.goldcorn.GoldCornException;
@@ -14,6 +21,9 @@
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Component
public class GoldCornManager {
@@ -26,7 +36,13 @@
    private GoldCornTradeService goldCornTradeService;
    @Reference(version = "1.0", check = false)
    private GoldCornRecordService goldCornRecordService;
    @Reference(version = "1.0", check = false)
    private GoldCornBalanceService goldCornBalanceService;
    @Reference(version = "1.0", check = false)
    private GoldCornGetSourceService goldCornGetSourceService;
    public void init(String uid) throws Exception {
        goldCornBalanceService.init(getAppCode(), getUid(uid));
@@ -57,6 +73,8 @@
    }
    public long getBalance(String uid) {
        if (StringUtil.isNullOrEmpty(uid))
            return 0;
        try {
            Long count = goldCornBalanceService.getBalance(getAppCode(), getUid(uid));
            if (count == null) {
@@ -94,6 +112,28 @@
        consumeGoldCorn(appCode, tuid, sourceCode, goldCornCount, title, desc);
    }
    /**
     * 添加金币
     *
     * @param uid
     * @param source
     * @param goldCorn
     * @param title
     * @param desc
     * @throws GoldUserException
     * @throws GoldAppException
     * @throws GoldTradeException
     * @throws Exception
     */
    public void addGoldCorn(String uid, CodeCornGetSourceType source, Integer goldCorn, String title, String desc) throws GoldUserException, GoldAppException, GoldTradeException, Exception {
        addGoldCorn(getAppCode(), getUid(uid), source.name(), goldCorn, title, desc);
    }
    public GoldCornGetSource getGoldCornGetSource(CodeCornGetSourceType source) throws GoldAppException {
        return goldCornGetSourceService.selectByAppAndCode(getAppCode(), source.name());
    }
    /**
     * 返回影视豆
     *
@@ -117,6 +157,19 @@
        addGoldCorn(appCode, tuid, sourceCode, record.getGoldCorn(), title, desc);
    }
    public List<GoldCornRecord> getRecordList(GoldCornRecordQuery query, String uid) throws Exception {
        query.setAppCode(getAppCode());
        query.setUid(getUid(uid));
        return goldCornRecordService.listUserRecord(query);
    }
    public long getRecordCount(GoldCornRecordQuery query, String uid) throws Exception {
        query.setAppCode(getAppCode());
        query.setUid(getUid(uid));
        return goldCornRecordService.countUserRecord(query);
    }
    private void addGoldCorn(String appCode, String uid, String sourceCode, Integer goldCornCount, String title, String desc) throws GoldUserException, GoldAppException, GoldTradeException {
        goldCornTradeService.addGoldCorn(appCode, uid, sourceCode, goldCornCount, title, desc);
    }
@@ -127,4 +180,23 @@
    }
    public List<GoldCornGetSource> listGetCornSource(int page, int pageSize) throws GoldAppException {
        return goldCornGetSourceService.listShow(getAppCode(), page, pageSize);
    }
    public List<GoldCornRecordCountMap> countRecordByGetSource(String uid, List<String> sourceCodes, Date minCreateTime, Date maxCreateTime) throws Exception {
        if (StringUtil.isNullOrEmpty(uid)) {
            return new ArrayList<>();
        }
        GoldCornRecordQuery query = new GoldCornRecordQuery();
        query.setUid(getUid(uid));
        query.setAppCode(getAppCode());
        query.setSourceCodes(sourceCodes);
        query.setMinCreateTime(minCreateTime);
        query.setMaxCreateTime(maxCreateTime);
        query.setType(GoldCornRecord.TYPE_GET);
        return goldCornRecordService.countUserRecordBySource(query);
    }
}
src/main/java/com/yeshi/buwan/vo/goldcorn/GoldCornCouponVideoVO.java
New file
@@ -0,0 +1,40 @@
package com.yeshi.buwan.vo.goldcorn;
import com.yeshi.buwan.domain.jump.JumpDetail;
public class GoldCornCouponVideoVO {
    private String picture;
    private JumpDetail jumpDetail;
    private String params;
    public GoldCornCouponVideoVO(String picture, JumpDetail jumpDetail, String params) {
        this.picture = picture;
        this.jumpDetail = jumpDetail;
        this.params = params;
    }
    public String getPicture() {
        return picture;
    }
    public void setPicture(String picture) {
        this.picture = picture;
    }
    public JumpDetail getJumpDetail() {
        return jumpDetail;
    }
    public void setJumpDetail(JumpDetail jumpDetail) {
        this.jumpDetail = jumpDetail;
    }
    public String getParams() {
        return params;
    }
    public void setParams(String params) {
        this.params = params;
    }
}
src/main/java/com/yeshi/buwan/vo/goldcorn/GoldCornRecordVO.java
New file
@@ -0,0 +1,37 @@
package com.yeshi.buwan.vo.goldcorn;
public class GoldCornRecordVO {
    private String title;
    private String date;
    private int goldCorn;
    public GoldCornRecordVO(String title, String date, int goldCorn) {
        this.title = title;
        this.date = date;
        this.goldCorn = goldCorn;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public int getGoldCorn() {
        return goldCorn;
    }
    public void setGoldCorn(int goldCorn) {
        this.goldCorn = goldCorn;
    }
}
src/main/java/com/yeshi/buwan/vo/goldcorn/GoldCornTaskVO.java
New file
@@ -0,0 +1,92 @@
package com.yeshi.buwan.vo.goldcorn;
import com.ks.goldcorn.pojo.DO.GoldCornGetSource;
import com.yeshi.buwan.domain.jump.JumpDetail;
public class GoldCornTaskVO {
    private String icon;
    private String title;
    private String goldCorn;
    private String desc;
    private String actionName;
    private JumpDetail jumpDetail;
    private String params;
    private boolean enable;
    public String getIcon() {
        return icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getGoldCorn() {
        return goldCorn;
    }
    public void setGoldCorn(String goldCorn) {
        this.goldCorn = goldCorn;
    }
    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }
    public String getActionName() {
        return actionName;
    }
    public void setActionName(String actionName) {
        this.actionName = actionName;
    }
    public JumpDetail getJumpDetail() {
        return jumpDetail;
    }
    public void setJumpDetail(JumpDetail jumpDetail) {
        this.jumpDetail = jumpDetail;
    }
    public String getParams() {
        return params;
    }
    public void setParams(String params) {
        this.params = params;
    }
    public boolean isEnable() {
        return enable;
    }
    public void setEnable(boolean enable) {
        this.enable = enable;
    }
    public static GoldCornTaskVO create(GoldCornGetSource source) {
        GoldCornTaskVO vo = new GoldCornTaskVO();
        vo.setActionName("去看看");
        vo.setDesc(source.getSourceDesc());
        vo.setEnable(true);
        vo.setIcon(source.getIcon());
        vo.setTitle(source.getSourceName());
        vo.setGoldCorn("+" + source.getGoldCorn() );
        return vo;
    }
}
src/main/java/com/yeshi/buwan/vo/goldcorn/SignInInfoVO.java
New file
@@ -0,0 +1,74 @@
package com.yeshi.buwan.vo.goldcorn;
import com.yeshi.buwan.dto.goldcorn.SignInGoldCornDateData;
import java.util.List;
public class SignInInfoVO {
    private int balance;
    private SignInConfig signInConfig;
    private List<SignInGoldCornDateData> dateList;
    private int signDay;
    private boolean canSignIn;
    public boolean isCanSignIn() {
        return canSignIn;
    }
    public void setCanSignIn(boolean canSignIn) {
        this.canSignIn = canSignIn;
    }
    public int getBalance() {
        return balance;
    }
    public void setBalance(int balance) {
        this.balance = balance;
    }
    public SignInConfig getSignInConfig() {
        return signInConfig;
    }
    public void setSignInConfig(SignInConfig signInConfig) {
        this.signInConfig = signInConfig;
    }
    public List<SignInGoldCornDateData> getDateList() {
        return dateList;
    }
    public void setDateList(List<SignInGoldCornDateData> dateList) {
        this.dateList = dateList;
    }
    public int getSignDay() {
        return signDay;
    }
    public void setSignDay(int signDay) {
        this.signDay = signDay;
    }
    public static class SignInConfig {
        private String recordUrl;
        private String ruleUrl;
        public String getRecordUrl() {
            return recordUrl;
        }
        public void setRecordUrl(String recordUrl) {
            this.recordUrl = recordUrl;
        }
        public String getRuleUrl() {
            return ruleUrl;
        }
        public void setRuleUrl(String ruleUrl) {
            this.ruleUrl = ruleUrl;
        }
    }
}
src/main/webapp/WEB-INF/lib/facade-goldcorn-0.0.1.jar
Binary files differ
src/test/java/com/hxh/spring/test/ConfigTest.java
@@ -64,10 +64,24 @@
        systemConfig = new SystemConfig();
        systemConfig.setBeizhu("");
        systemConfig.setKey("videoPrice");
        systemConfig.setName("单片价格");
        systemConfig.setKey("goldCornRecordUrl");
        systemConfig.setName("影视豆记录链接");
        try {
            systemConfig.setValue(new Gson().toJson(new PPTVVideoPrice(new BigDecimal("5"), new BigDecimal(3), "6折")));
            systemConfig.setValue("http://www.baidu.com");
        } catch (Exception e) {
            e.printStackTrace();
        }
        systemConfig.setCreateTime(new Date());
        systemConfig.setId(SystemConfig.createId(systemConfig.getKey()));
        systemConfigDao.save(systemConfig);
        systemConfig = new SystemConfig();
        systemConfig.setBeizhu("");
        systemConfig.setKey("goldCornRuleUrl");
        systemConfig.setName("影视豆规则");
        try {
            systemConfig.setValue("http://www.baidu.com");
        } catch (Exception e) {
            e.printStackTrace();
        }
src/test/java/com/hxh/spring/test/GeneralTest.java
@@ -1,7 +1,10 @@
package com.hxh.spring.test;
import com.ks.goldcorn.pojo.Query.GoldCornRecordQuery;
import com.yeshi.buwan.dao.base.MongodbBaseDao;
import com.yeshi.buwan.dao.goldcorn.GoldCornTaskActionDetailDao;
import com.yeshi.buwan.dao.video.VideoResourceVersionMapDao;
import com.yeshi.buwan.domain.goldcorn.GoldCornTaskActionDetail;
import com.yeshi.buwan.domain.video.VideoResourceVersionMap;
import com.yeshi.buwan.service.inter.video.VideoResourceVersionMapService;
import com.yeshi.buwan.tencent.entity.TencentSearchVideoMap;
@@ -14,7 +17,7 @@
    @org.junit.Test
    public void createDao() {
        try {
            SpringComponentGenerater.createMongoDao(new MongoDBDaoData.Builder().setBaseDaoClass(MongodbBaseDao.class).setDaoPackageName("com.yeshi.buwan.dao.juhe.youku").setEntityClass(TencentSearchVideoMap.class).create(), "D:\\workspace\\BuWan\\src\\main\\java\\com\\yeshi\\buwan\\dao\\juhe\\tencent\\");
            SpringComponentGenerater.createMongoDao(new MongoDBDaoData.Builder().setBaseDaoClass(MongodbBaseDao.class).setDaoPackageName("com.yeshi.buwan.dao.goldcorn").setEntityClass(GoldCornTaskActionDetail.class).create(), "D:\\workspace\\BuWan\\src\\main\\java\\com\\yeshi\\buwan\\dao\\goldcorn\\");
        } catch (Exception e) {
            e.printStackTrace();
        }
@@ -24,7 +27,7 @@
    @org.junit.Test
    public void createService() {
        try {
            SpringComponentGenerater.createService(new ServiceData.Builder().setPackageName("com.yeshi.buwan.service.inter.video").setDaoClass(VideoResourceVersionMapDao.class).setEntityClass(VideoResourceVersionMap.class).build(), "D:\\workspace\\BuWan\\src\\main\\java\\com\\yeshi\\buwan\\service\\inter\\video\\");
            SpringComponentGenerater.createService(new ServiceData.Builder().setPackageName("com.yeshi.buwan.service.inter.goldcorn").setDaoClass(GoldCornTaskActionDetailDao.class).setEntityClass(GoldCornTaskActionDetail.class).build(), "D:\\workspace\\BuWan\\src\\main\\java\\com\\yeshi\\buwan\\service\\inter\\goldcorn\\");
        } catch (Exception e) {
            e.printStackTrace();
        }
src/test/java/com/hxh/spring/test/goldcorn/GoldCornTest.java
New file
@@ -0,0 +1,78 @@
package com.hxh.spring.test.goldcorn;
import com.ks.goldcorn.pojo.DO.GoldCornGetSource;
import com.yeshi.buwan.dao.goldcorn.GoldCornTaskActionDetailDao;
import com.yeshi.buwan.domain.goldcorn.CodeCornGetSourceType;
import com.yeshi.buwan.domain.goldcorn.GoldCornTaskActionDetail;
import com.yeshi.buwan.domain.jump.JumpDetail;
import com.yeshi.buwan.domain.jump.JumpTypeEnum;
import org.json.JSONObject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import javax.annotation.Resource;
import java.util.Date;
@RunWith(SpringJUnit4ClassRunner.class) //使用junit4进行测试
@ContextConfiguration(locations = {"classpath:spring.xml"})
@WebAppConfiguration
public class GoldCornTest {
    @Resource
    private GoldCornTaskActionDetailDao goldCornTaskActionDetailDao;
    @Test
    public void addDetail() {
        JumpDetail jumpDetail = new JumpDetail();
        jumpDetail.setNeedLogin(true);
        jumpDetail.setType(JumpTypeEnum.clazz);
        jumpDetail.setActivity("com.weikou.beibeivideo.ui.main.MainActivity");
        JSONObject params = new JSONObject();
        params.put("position", 0);
        params.put("cposition", 2);
        params.put("goldcorn", CodeCornGetSourceType.watchHighVideo.name());
        GoldCornTaskActionDetail detail = new GoldCornTaskActionDetail();
        detail.setActionName("去看看");
        detail.setCreateTime(new Date());
        detail.setJumpDetail(jumpDetail);
        detail.setParams(params.toString().replace("\"", "\\" + "\""));
        detail.setSourceCode(CodeCornGetSourceType.watchHighVideo.name());
        goldCornTaskActionDetailDao.save(detail);
        params = new JSONObject();
        params.put("goldcorn", CodeCornGetSourceType.searchVideo.name());
        jumpDetail.setActivity("com.weikou.beibeivideo.ui.recommend.SearchActivity");
        jumpDetail.setType(JumpTypeEnum.clazz);
        detail = new GoldCornTaskActionDetail();
        detail.setActionName("去搜索");
        detail.setCreateTime(new Date());
        detail.setJumpDetail(jumpDetail);
        detail.setParams(params.toString().replace("\"", "\\" + "\""));
        detail.setSourceCode(CodeCornGetSourceType.searchVideo.name());
        goldCornTaskActionDetailDao.save(detail);
        params = new JSONObject();
        params.put("goldcorn", CodeCornGetSourceType.watchRewardAd.name());
        params.put("adType", "csj");
        params.put("pid","945914112");
        jumpDetail.setActivity("");
        jumpDetail.setType(JumpTypeEnum.rewardVideo);
        detail = new GoldCornTaskActionDetail();
        detail.setActionName("去看看");
        detail.setCreateTime(new Date());
        detail.setJumpDetail(jumpDetail);
        detail.setParams(params.toString().replace("\"", "\\" + "\""));
        detail.setSourceCode(CodeCornGetSourceType.watchRewardAd.name());
        goldCornTaskActionDetailDao.save(detail);
    }
}