935090232@qq.com
2021-03-22 585f72d4f6022cd9498a9a1e4309f51821f1995a
用户积分流水查询
1 files added
2 files deleted
7 files modified
432 ■■■■■ changed files
zq-erp/src/main/java/com/matrix/system/score/dao/ScoreUseRecordDao.java 16 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/score/entity/ScoreVipDetail.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java 89 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java 51 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ScoreFlowDto.java 26 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopOrderUtil.java 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopScoreRecord.java 155 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopScoreRecordDao.java 40 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/score/ScoreUseRecordDao.xml 49 ●●●● patch | view | raw | blame | history
zq-erp/src/test/java/com/matrix/JyyTests.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/score/dao/ScoreUseRecordDao.java
@@ -1,11 +1,12 @@
package com.matrix.system.score.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
import com.matrix.core.pojo.PaginationVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.matrix.system.score.entity.ScoreUseRecord;
import com.matrix.system.shopXcx.api.dto.ScoreFlowDto;
import com.matrix.system.shopXcx.vo.SalesOrderVo;
import org.apache.ibatis.annotations.Param;
/**
 * @description 积分记录表
@@ -14,4 +15,11 @@
 */
public interface ScoreUseRecordDao extends BaseMapper<ScoreUseRecord> {
    /**
     * 查询收支记录
     * @param page
     * @param scoreFlowDto
     * @return
     */
    IPage<ScoreUseRecord> selectFlowList(Page<SalesOrderVo> page, @Param("record")ScoreFlowDto scoreFlowDto);
}
zq-erp/src/main/java/com/matrix/system/score/entity/ScoreVipDetail.java
@@ -42,7 +42,7 @@
    /**
     * erp用户Id
     */
    private String vipId;
    private Long vipId;
    
    /**
zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java
@@ -5,7 +5,12 @@
import com.matrix.biz.dao.BizUserDao;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.common.bean.BusParameterSettings;
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.common.dao.SysUsersDao;
import com.matrix.system.hive.dao.SysVipInfoDao;
import com.matrix.system.score.constant.ScoreSettingConstant;
import com.matrix.system.score.dao.ScoreUseRecordDao;
import com.matrix.system.score.dao.ScoreVipDetailDao;
import com.matrix.system.score.entity.ScoreUseRecord;
@@ -14,6 +19,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
@@ -35,6 +42,12 @@
    @Autowired
    SysVipInfoDao vipInfoDao;
    @Autowired
    SysUsersDao sysUsersDao;
    @Autowired
    BusParameterSettingsDao busParameterSettingsDao;
    /**
     * 扣除用户积分
@@ -89,7 +102,7 @@
            scoreUseRecord.setCompanyId(companyId);
            scoreUseRecord.setScoreVipDetailId(scoreVipDetail.getId());
            scoreUseRecord.setBusinessId(businessId);
            scoreUseRecord.setRecNum(currentDedution);
            scoreUseRecord.setRecNum(-currentDedution);
            scoreUseRecord.setRecType(type);
            scoreUseRecord.setOpenId(openId);
            scoreUseRecord.setVipId(vipId);
@@ -102,6 +115,80 @@
        if(score>0){
            throw new GlobleException("积分不足");
        }
    }
    /**
     * 新增用户积分
     * @param openId
     * @param vipId
     * @param oprationUserId
     * @param score
     * @param businessId
     * @param type
     */
    @Transactional(rollbackFor = Exception.class)
    public void addScore(String openId, Long vipId, Long oprationUserId, Integer score, Long businessId, int type) {
        Long companyId=null;
        if(openId!=null){
            companyId= bizUserDao.findByOpenId(openId).getCompanyId();
        }else if(vipId!=null){
            companyId= vipInfoDao.selectById(vipId).getCompanyId();
        }else{
            throw new IllegalArgumentException("vipId,openId必须有一个");
        }
        if(score<0){
            throw new IllegalArgumentException("score必须有为大于零的数");
        }
        String createBy=MatrixConstance.SYSTEM_USER;
        if(oprationUserId!=null){
            createBy=sysUsersDao.selectById(oprationUserId).getSuName();
        }
        //计算过期时间
        BusParameterSettings yxqSetting = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.VALID_PERIOD_POINTS, companyId);
        Calendar cal=Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);
        int sxYear=year+(Integer.parseInt(yxqSetting.getParamValue())-1);
        Date sxys=DateUtil.stringToDate(year+"-12-31 23:59",DateUtil.DATE_FORMAT_MM );
        ScoreVipDetail scoreVipDetail=new ScoreVipDetail();
        scoreVipDetail.setCreateBy(createBy);
        scoreVipDetail.setUpdateBy(createBy);
        scoreVipDetail.setCreateTime(DateTime.now());
        scoreVipDetail.setUpdateTime(DateTime.now());
        scoreVipDetail.setState(ScoreVipDetail.SCORE_STATUS_YX);
        scoreVipDetail.setRemainScore(score);
        scoreVipDetail.setUsedScore(0);
        scoreVipDetail.setValiditeTime(sxys);
        scoreVipDetail.setOpenId(openId);
        scoreVipDetail.setVipId(vipId);
        scoreVipDetail.setGainTime(DateTime.now());
        scoreVipDetail.setAllScore(score);
        scoreVipDetail.setType(type);
        scoreVipDetail.setCompanyId(companyId);
        scoreVipDetailDao.insert(scoreVipDetail);
        //新增添加记录
        ScoreUseRecord   scoreUseRecord = new ScoreUseRecord();
        scoreUseRecord.setPreScore(score);
        scoreUseRecord.setCreateBy(createBy);
        scoreUseRecord.setUpdateBy(createBy);
        scoreUseRecord.setCreateTime(DateTime.now());
        scoreUseRecord.setUpdateTime(DateTime.now());
        scoreUseRecord.setNowScore(score);
        scoreUseRecord.setCompanyId(companyId);
        scoreUseRecord.setScoreVipDetailId(scoreVipDetail.getId());
        scoreUseRecord.setBusinessId(businessId);
        scoreUseRecord.setRecNum(score);
        scoreUseRecord.setRecType(type);
        scoreUseRecord.setOpenId(openId);
        scoreUseRecord.setVipId(vipId);
        scoreUseRecordDao.insert(scoreUseRecord);
    }
}
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java
@@ -1,19 +1,54 @@
package com.matrix.system.shopXcx.api.action;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.matrix.biz.bean.BizUser;
import com.matrix.component.redis.RedisUserLoginUtils;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.system.score.dao.ScoreUseRecordDao;
import com.matrix.system.score.entity.ScoreUseRecord;
import com.matrix.system.shopXcx.api.dto.ScoreFlowDto;
import com.matrix.system.shopXcx.vo.SalesOrderVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @description 用户积分控制器
 * @author jyy
 * @date 2019-08-09 15:10
 * @date 2021-03-22 15:10
 */
@Controller
@RequestMapping(value="/wxapi/shopScoreRecord")
@CrossOrigin(origins = "*", maxAge = 3600)
@Api(tags = "用户积分接口类")
@RestController
@RequestMapping(value = "/wxapi/score")
public class WxShopScoreAction {
    @Autowired
    RedisUserLoginUtils redisUserLoginUtils;
    @Autowired
    ScoreUseRecordDao scoreUseRecordDao;
    @ApiOperation(value = "获取积分流水", notes = "")
    @PostMapping(value = "/getOrderList")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = ScoreUseRecord.class)
    })
    AjaxResult getInvitationuserList(@RequestBody @Validated ScoreFlowDto scoreFlowDto) {
        BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
        Page<SalesOrderVo> page=new Page<>(scoreFlowDto.getPageNum(),scoreFlowDto.getPageSize());
        scoreFlowDto.setUserId(loginUser.getOpenId());
        IPage<ScoreUseRecord> shopScoreRecord = scoreUseRecordDao.selectFlowList(page,  scoreFlowDto);
        AjaxResult result=AjaxResult.buildSuccessInstance(shopScoreRecord.getRecords());
        return result;
    }
}
zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ScoreFlowDto.java
New file
@@ -0,0 +1,26 @@
package com.matrix.system.shopXcx.api.dto;
import com.matrix.core.pojo.BasePageQueryDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "ScoreFlowDto", description = "积分流水查询参数接收类")
public class ScoreFlowDto extends BasePageQueryDto {
    @NotNull(message = "查询月份不能为空")
    @ApiModelProperty(value = "查询月份",example = "2021-03")
    private String queryTime;
    @ApiModelProperty(value = "收支类型 不传全部,1,收入,2支出", example = "1")
    private Integer  revenueType;
    @ApiModelProperty(hidden = true)
    private String  userId;
}
zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopOrderUtil.java
@@ -46,8 +46,6 @@
    private WxShopMemberDayService wxShopMemberDayService;
    @Autowired
    private BizUserService bizUserService;
    @Autowired
    private ShopScoreRecordDao shopScoreRecordDao;
    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopScoreRecord.java
File was deleted
zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopScoreRecordDao.java
File was deleted
zq-erp/src/main/resources/mybatis/mapper/score/ScoreUseRecordDao.xml
@@ -3,41 +3,18 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.matrix.system.score.dao.ScoreUseRecordDao">
    <!-- 定义ScoreUseRecord 的复杂关联map -->
    <resultMap type="com.matrix.system.score.entity.ScoreUseRecord" id="ScoreUseRecordMap">
        <id property="id" column="id" />
        <result property="createBy" column="create_by" />
        <result property="createTime" column="create_time" />
        <result property="updateBy" column="update_by" />
        <result property="updateTime" column="update_time" />
            <result property="recType" column="rec_type" />
            <result property="recNum" column="rec_num" />
            <result property="businessId" column="business_id" />
            <result property="scoreVipDetailId" column="score_vip_detail_id" />
            <result property="preScore" column="pre_score" />
            <result property="nowScore" column="now_score" />
            <result property="userId" column="user_id" />
            <result property="remarks" column="remarks" />
            <result property="companyId" column="company_id" />
    </resultMap>
    <!-- 定义ScoreUseRecord 的简单map  ,本map不添加其他的关联属性 -->
    <resultMap type="com.matrix.system.score.entity.ScoreUseRecord" id="ScoreUseRecordSimpleMap">
        <id property="id" column="id" />
        <result property="createBy" column="create_by" />
        <result property="createTime" column="create_time" />
        <result property="updateBy" column="update_by" />
        <result property="updateTime" column="update_time" />
            <result property="recType" column="rec_type" />
            <result property="recNum" column="rec_num" />
            <result property="businessId" column="business_id" />
            <result property="scoreVipDetailId" column="score_vip_detail_id" />
            <result property="preScore" column="pre_score" />
            <result property="nowScore" column="now_score" />
            <result property="userId" column="user_id" />
            <result property="remarks" column="remarks" />
            <result property="companyId" column="company_id" />
    </resultMap>
    <select id="selectFlowList" resultType="com.matrix.system.score.entity.ScoreUseRecord">
        select * from score_use_record
        where open_id=#{record.userId}
        and DATE_FORMAT(create_time,'%Y-%m')=#{record.queryTime}
        <if test="record.revenueType==1">
            and rec_num>0
        </if>
        <if test="record.revenueType==2">
            <![CDATA[ and rec_num<0 ]]>
        </if>
        order by create_time desc
    </select>
</mapper>
zq-erp/src/test/java/com/matrix/JyyTests.java
@@ -32,7 +32,7 @@
    @Test
    public void scoreVipDetailService() throws InterruptedException {
        scoreVipDetailService.deductionScore("oJkRK4yelehsY4S7I6Ee1ydWtQMI",null,15,1L,1);
        scoreVipDetailService.addScore("oJkRK4yelehsY4S7I6Ee1ydWtQMI",null,null,15,1L,1);
    }
    /**