Browse Source

积分调整功能

gqx 2 years ago
parent
commit
fe38b07156

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMemberCardController.java

@@ -103,6 +103,11 @@ public class BusMemberCardController extends JeecgController<BusMemberCard, IBus
 		return Result.OK(pageList);
 		return Result.OK(pageList);
 	}
 	}
 
 
+	/**
+	 * 会员各种统计
+	 * @param hotelId
+	 * @return
+	 */
 	 @GetMapping(value = "/stat")
 	 @GetMapping(value = "/stat")
 	 public Result stat(@RequestParam(name="hotelId") String hotelId) {
 	 public Result stat(@RequestParam(name="hotelId") String hotelId) {
 		 MemberCardStatVo vo = busMemberCardService.stat(hotelId);
 		 MemberCardStatVo vo = busMemberCardService.stat(hotelId);

+ 181 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMemberPointLogController.java

@@ -0,0 +1,181 @@
+package org.jeecg.modules.business.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.business.entity.BusMemberPointLog;
+import org.jeecg.modules.business.service.IBusMemberCardService;
+import org.jeecg.modules.business.service.IBusMemberPointLogService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: bus_member_point_log
+ * @Author: jeecg-boot
+ * @Date:   2023-03-13
+ * @Version: V1.0
+ */
+@Api(tags="bus_member_point_log")
+@RestController
+@RequestMapping("/business/busMemberPointLog")
+@Slf4j
+public class BusMemberPointLogController extends JeecgController<BusMemberPointLog, IBusMemberPointLogService> {
+	@Autowired
+	private IBusMemberPointLogService busMemberPointLogService;
+	@Autowired
+	private IBusMemberCardService busMemberCardService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param busMemberPointLog
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "bus_member_point_log-分页列表查询")
+	@ApiOperation(value="bus_member_point_log-分页列表查询", notes="bus_member_point_log-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<BusMemberPointLog>> queryPageList(BusMemberPointLog busMemberPointLog,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<BusMemberPointLog> queryWrapper = QueryGenerator.initQueryWrapper(busMemberPointLog, req.getParameterMap());
+		Page<BusMemberPointLog> page = new Page<BusMemberPointLog>(pageNo, pageSize);
+		IPage<BusMemberPointLog> pageList = busMemberPointLogService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param busMemberPointLog
+	 * @return
+	 */
+	@AutoLog(value = "bus_member_point_log-添加")
+	@ApiOperation(value="bus_member_point_log-添加", notes="bus_member_point_log-添加")
+	//@RequiresPermissions("business:bus_member_point_log:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody BusMemberPointLog busMemberPointLog) {
+		Result res = busMemberPointLogService.savePoint(busMemberPointLog);
+		return res;
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param busMemberPointLog
+	 * @return
+	 */
+	@AutoLog(value = "bus_member_point_log-编辑")
+	@ApiOperation(value="bus_member_point_log-编辑", notes="bus_member_point_log-编辑")
+	//@RequiresPermissions("business:bus_member_point_log:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody BusMemberPointLog busMemberPointLog) {
+		busMemberPointLogService.updateById(busMemberPointLog);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "bus_member_point_log-通过id删除")
+	@ApiOperation(value="bus_member_point_log-通过id删除", notes="bus_member_point_log-通过id删除")
+	//@RequiresPermissions("business:bus_member_point_log:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		busMemberPointLogService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "bus_member_point_log-批量删除")
+	@ApiOperation(value="bus_member_point_log-批量删除", notes="bus_member_point_log-批量删除")
+	//@RequiresPermissions("business:bus_member_point_log:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.busMemberPointLogService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "bus_member_point_log-通过id查询")
+	@ApiOperation(value="bus_member_point_log-通过id查询", notes="bus_member_point_log-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<BusMemberPointLog> queryById(@RequestParam(name="id",required=true) String id) {
+		BusMemberPointLog busMemberPointLog = busMemberPointLogService.getById(id);
+		if(busMemberPointLog==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(busMemberPointLog);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param busMemberPointLog
+    */
+    //@RequiresPermissions("business:bus_member_point_log:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, BusMemberPointLog busMemberPointLog) {
+        return super.exportXls(request, busMemberPointLog, BusMemberPointLog.class, "bus_member_point_log");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("business:bus_member_point_log:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, BusMemberPointLog.class);
+    }
+
+}

+ 73 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMemberPointLog.java

@@ -0,0 +1,73 @@
+package org.jeecg.modules.business.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: bus_member_point_log
+ * @Author: jeecg-boot
+ * @Date:   2023-03-13
+ * @Version: V1.0
+ */
+@Data
+@TableName("bus_member_point_log")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="bus_member_point_log对象", description="bus_member_point_log")
+public class BusMemberPointLog implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+	/**关联租户*/
+	@Excel(name = "关联租户", width = 15)
+    @ApiModelProperty(value = "关联租户")
+    private String tenantId;
+	/**关联酒店*/
+	@Excel(name = "关联酒店", width = 15)
+    @ApiModelProperty(value = "关联酒店")
+    private String hotelId;
+	/**会员id*/
+	@Excel(name = "会员id", width = 15)
+    @ApiModelProperty(value = "会员id")
+    private String memberId;
+	/**积分数量*/
+	@Excel(name = "积分数量", width = 15)
+    @ApiModelProperty(value = "积分数量")
+    private Integer num;
+	/**积分余额*/
+	@Excel(name = "积分余额", width = 15)
+    @ApiModelProperty(value = "积分余额")
+    private Integer balance;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**类型*/
+    @Excel(name = "类型", width = 15)
+    @ApiModelProperty(value = "类型")
+    private Integer type;
+}

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMemberPointLogMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.business.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.business.entity.BusMemberPointLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: bus_member_point_log
+ * @Author: jeecg-boot
+ * @Date:   2023-03-13
+ * @Version: V1.0
+ */
+public interface BusMemberPointLogMapper extends BaseMapper<BusMemberPointLog> {
+
+}

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMemberPointLogMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.demo.business.mapper.BusMemberPointLogMapper">
+
+</mapper>

+ 22 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMemberPointLogService.java

@@ -0,0 +1,22 @@
+package org.jeecg.modules.business.service;
+
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.business.entity.BusMemberPointLog;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @Description: bus_member_point_log
+ * @Author: jeecg-boot
+ * @Date:   2023-03-13
+ * @Version: V1.0
+ */
+public interface IBusMemberPointLogService extends IService<BusMemberPointLog> {
+    /**
+     * 调整积分
+     *
+     * @param dto
+     * @return
+     */
+    public Result savePoint(BusMemberPointLog dto);
+}

+ 69 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMemberPointLogServiceImpl.java

@@ -0,0 +1,69 @@
+package org.jeecg.modules.business.service.impl;
+
+import cn.hutool.core.date.DateTime;
+import org.apache.commons.lang3.ObjectUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.TokenUtils;
+import org.jeecg.modules.business.dto.CouponsGenerateDto;
+import org.jeecg.modules.business.entity.*;
+import org.jeecg.modules.business.mapper.BusMarketCouponsMapper;
+import org.jeecg.modules.business.mapper.BusMarketMemberMapper;
+import org.jeecg.modules.business.mapper.BusMemberCardMapper;
+import org.jeecg.modules.business.mapper.BusMemberPointLogMapper;
+import org.jeecg.modules.business.service.IBusMemberPointLogService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: bus_member_point_log
+ * @Author: jeecg-boot
+ * @Date:   2023-03-13
+ * @Version: V1.0
+ */
+@Service
+public class BusMemberPointLogServiceImpl extends ServiceImpl<BusMemberPointLogMapper, BusMemberPointLog> implements IBusMemberPointLogService {
+    @Resource
+    private BusMemberCardMapper busMemberCardMapper;
+
+    /**
+     * 调整积分
+     *
+     * @param dto
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public  Result savePoint(BusMemberPointLog dto) {
+        if (ObjectUtils.isEmpty(dto.getMemberId())) return Result.error("会员id不能为空");
+        if (dto.getNum() <= 0) return Result.error("积分数量不能小于1!");
+        BusMemberCard member = busMemberCardMapper.selectById(dto.getMemberId());
+        if (ObjectUtils.isEmpty(member)) {
+            return Result.error("会员不存在");
+        }
+        Integer balance = 0;
+        switch (dto.getType()) {
+            case 1:
+                balance = member.getIntegral() + dto.getNum();
+                break;
+            case 2:
+                balance = member.getIntegral() - dto.getNum();
+                break;
+            case 3:
+                balance = 0;
+                break;
+        }
+        if (balance < 0) balance = 0;
+        dto.setBalance(balance);
+        Boolean res = this.save(dto);
+        if (res) {
+            member.setIntegral(balance);
+            busMemberCardMapper.updateById(member);
+        }
+        return Result.ok("创建成功");
+    }
+}