cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java
@@ -56,7 +56,7 @@ @ResponseBody @PostMapping("/api/exploreWP/noticeList") @PostMapping("/base/exploreWP/noticeList") @ApiOperation(value = "联系客服-公告详情", tags = {"APP-探索玩湃"}) public ResultUtil<SysNotice> queryNotice(@RequestBody Integer noId){ try { cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
New file @@ -0,0 +1,104 @@ package com.dsh.account.controller; import com.dsh.account.entity.TAppUser; import com.dsh.account.model.vo.userBenefitDetail.AppUserDetailsVo; import com.dsh.account.model.vo.userBenefitDetail.BillingDetailsVo; import com.dsh.account.model.vo.userBenefitDetail.IndexOfUserBenefirVo; import com.dsh.account.service.TAppUserService; import com.dsh.account.util.ResultUtil; import com.dsh.account.util.TokenUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.text.SimpleDateFormat; @RestController @RequestMapping("") public class UseBenefitsController { @Autowired private TAppUserService tauService; @Autowired private TokenUtil tokenUtil; private final SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd"); @ResponseBody @PostMapping("/api/useBenefit/indexOfAppUser") @ApiOperation(value = "福利主页", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) public ResultUtil<IndexOfUserBenefirVo> queryAppUserUser(){ try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } return ResultUtil.success(tauService.queryBenefitDetails(appUserId)); }catch (Exception e){ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/useBenefit/userDetails") @ApiOperation(value = "用户个人信息", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) public ResultUtil<AppUserDetailsVo> queryAppUserDetails(){ try { AppUserDetailsVo detailsVo = new AppUserDetailsVo(); Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } TAppUser tAppUser = tauService.getBaseMapper().selectById(appUserId); if (null != tAppUser){ detailsVo.setUserImage(tAppUser.getHeadImg()); detailsVo.setUserName(tAppUser.getName()); detailsVo.setUserPhone(tAppUser.getPhone()); detailsVo.setSex(tAppUser.getGender() == 1 ? "男" : "女"); detailsVo.setBirthday(format1.format(tAppUser.getBirthday())); detailsVo.setAddress(tAppUser.getProvince()+tAppUser.getCity()); detailsVo.setMemberLifespan(format1.format(tAppUser.getVipEndTime())); } return ResultUtil.success(detailsVo); }catch (Exception e){ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/useBenefit/userBilling") @ApiOperation(value = "账单", tags = {"APP-使用福利"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(value = "年月", name = "yearMonth", required = true, dataType = "string"), @ApiImplicitParam(value = "记录id", name = "recordId", required = true, dataType = "int"), }) public ResultUtil<BillingDetailsVo> getUserBillingDetails(@RequestBody String yearMonth,@RequestBody Integer recordId){ try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } return ResultUtil.success(tauService.queryUserBillingDetails(yearMonth,recordId)); }catch (Exception e){ return ResultUtil.runErr(); } } } cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
New file @@ -0,0 +1,17 @@ package com.dsh.account.feignclient.activity; import com.dsh.account.feignclient.activity.model.IntegralCommodity; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @FeignClient(value = "mb-cloud-activity") public interface MerChandiseClient { @PostMapping("/pointMerchars/convertGoods") public List<IntegralCommodity> getConvertibleGoods(); } cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/IntegralCommodity.java
New file @@ -0,0 +1,24 @@ package com.dsh.account.feignclient.activity.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data public class IntegralCommodity { @ApiModelProperty(value = "商品id") private Integer commodityId; @ApiModelProperty(value = "商品图片") private String commodityImg; @ApiModelProperty(value = "商品名称") private String commodityName; @ApiModelProperty(value = "商品价格") private BigDecimal commodityPrice; } cloud-server-account/src/main/java/com/dsh/account/feignclient/other/ImgConfigClient.java
@@ -1,6 +1,7 @@ package com.dsh.account.feignclient.other; import com.dsh.account.feignclient.other.model.TImgConfig; import com.dsh.account.feignclient.other.model.UserBenefitImage; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -11,4 +12,8 @@ @PostMapping("/imgConfig/getNoneStu") List<TImgConfig> getNoneStuImgs(); @PostMapping("/imgConfig/getBenefitImage") public UserBenefitImage getImageConfig(); } cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/UserBenefitImage.java
New file @@ -0,0 +1,22 @@ package com.dsh.account.feignclient.other.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class UserBenefitImage { @ApiModelProperty(value = "我的券包pic") private String myConpons; @ApiModelProperty(value = "线上商城pic") private String onlineShop; @ApiModelProperty(value = "本周福利pic") private String weeksBenefit; @ApiModelProperty(value = "今日免费pic") private String todayFree; } cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/AppUserDetailsVo.java
New file @@ -0,0 +1,31 @@ package com.dsh.account.model.vo.userBenefitDetail; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class AppUserDetailsVo { @ApiModelProperty(value = "用户头像") private String userImage; @ApiModelProperty(value = "用户名称") private String userName; @ApiModelProperty(value = "用户手机号") private String userPhone; @ApiModelProperty(value = "用户性别") private String sex; @ApiModelProperty(value = "用户生日") private String birthday; @ApiModelProperty(value = "用户地址") private String address; @ApiModelProperty(value = "会员有效期") private String memberLifespan; } cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/BillingDetailsVo.java
New file @@ -0,0 +1,32 @@ package com.dsh.account.model.vo.userBenefitDetail; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data public class BillingDetailsVo { @ApiModelProperty(value = "记录列表") List<ConsumeDetail> details; @Data public static class ConsumeDetail{ @ApiModelProperty(value = "名称") private String consumeName; @ApiModelProperty(value = "时间") private String consumeTime; @ApiModelProperty(value = "金额 例如 -90 ") private String consumeAmount; } } cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java
New file @@ -0,0 +1,34 @@ package com.dsh.account.model.vo.userBenefitDetail; import com.dsh.account.feignclient.activity.model.IntegralCommodity; import com.dsh.account.feignclient.other.model.UserBenefitImage; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data public class IndexOfUserBenefirVo { @ApiModelProperty(value = "用户头像") private String userHeadImg; @ApiModelProperty(value = "用户名称") private String userName; @ApiModelProperty(value = "是否年度会员") private String isMember; @ApiModelProperty(value = "玩湃币") private double wpCoin; @ApiModelProperty(value = "用户积分") private Integer userIntegral; @ApiModelProperty(value = "商品列表") private List<IntegralCommodity> commodities; @ApiModelProperty(value = "banners") private UserBenefitImage image; } cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
@@ -1,13 +1,15 @@ package com.dsh.account.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.account.entity.TAppUser; import com.dsh.account.model.AddAppUserVo; import com.dsh.account.model.JoinPlayPaiVo; import com.dsh.account.model.LoginSMSCodeVo; import com.dsh.account.model.LoginWeChatVo; import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo; import com.dsh.account.model.vo.userBenefitDetail.BillingDetailsVo; import com.dsh.account.model.vo.userBenefitDetail.IndexOfUserBenefirVo; import com.dsh.account.util.ResultUtil; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> @@ -91,4 +93,20 @@ * @throws Exception */ JoinPlayPaiVo queryJoinPlayPai(Integer uid, String lon, String lat) throws Exception; /** * 获取使用福利首页数据 * @param appUserId * @return */ IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId); /** * 获取用户账单列表 * @param yearMonth 年月 * @param recordId 记录id * @return */ BillingDetailsVo queryUserBillingDetails(String yearMonth, Integer recordId); } cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.account.entity.TAppUser; import com.dsh.account.entity.TStudent; import com.dsh.account.feignclient.activity.MerChandiseClient; import com.dsh.account.feignclient.course.CoursePaymentClient; import com.dsh.account.feignclient.course.model.CourseOfStoreVo; import com.dsh.account.feignclient.course.model.QueryStoreList; @@ -24,6 +25,8 @@ import com.dsh.account.model.vo.classDetails.RegisteredCourse; import com.dsh.account.model.vo.classDetails.WeekedCourse; import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo; import com.dsh.account.model.vo.userBenefitDetail.BillingDetailsVo; import com.dsh.account.model.vo.userBenefitDetail.IndexOfUserBenefirVo; import com.dsh.account.service.TAppUserService; import com.dsh.account.util.*; import com.dsh.account.util.akeylogin.Md5Util; @@ -74,8 +77,12 @@ @Resource private StoreClient storeClient; @Autowired private MerChandiseClient mcClient; @Autowired private ImgConfigClient icfgClient; @Override public ClassInfoVo queryUserOfStus(Integer id,String latitude,String longitude) { @@ -450,4 +457,28 @@ } return joinPlayPaiVo; } @Override public IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId) { IndexOfUserBenefirVo benefirVo = new IndexOfUserBenefirVo(); TAppUser appUser = this.getById(appUserId); benefirVo.setUserHeadImg(appUser.getHeadImg()); benefirVo.setUserName(appUser.getName()); if (appUser.getIsVip() == 1){ benefirVo.setIsMember("年度会员"); }else { benefirVo.setIsMember("普通用户"); } benefirVo.setCommodities(mcClient.getConvertibleGoods()); benefirVo.setImage(icfgClient.getImageConfig()); return benefirVo; } @Override public BillingDetailsVo queryUserBillingDetails(String yearMonth, Integer recordId) { System.out.println("账单传参:yearMonth"+yearMonth+"|"+"recordId"+recordId); // TODO: 2023/7/4 return null; } } cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -165,7 +165,7 @@ purchaseRecordVoList.addAll(purchaseRecordVos); List<TAppUser> tAppUsers = tauMapper.selectList(new QueryWrapper<TAppUser>() .eq("referralUserId",appUserId ) .between("insertTime",timeRequest.getStartTime() ,timeRequest.getEndTime())); .between("insertTime",startTime ,endTime)); List<Integer> userIds = tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList()); List<PurchaseRecordVo> purchaseRecordVos1 = idrClient.queryAppUsersofIntroduce(startTime, endTime, userIds); purchaseRecordVoList.addAll(purchaseRecordVos1); cloud-server-account/src/main/resources/mapper/StudentHonorMapper.xml
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
New file @@ -0,0 +1,46 @@ package com.dsh.activity.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.activity.entity.PointsMerchandise; import com.dsh.activity.feignclient.model.IntegralCommodity; import com.dsh.activity.service.PointsMerchandiseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.Date; import java.util.List; @RestController @RequestMapping("") public class PointMercharsController { @Autowired private PointsMerchandiseService pmdsService; @PostMapping("/pointMerchars/convertGoods") public List<IntegralCommodity> getConvertibleGoods(){ List<IntegralCommodity> commodity = new ArrayList<>(); List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>() .eq("state",1) .lt("endTime",new Date())); if (merchandises.size() > 0){ for (PointsMerchandise merchandise : merchandises) { IntegralCommodity integralCommodity = new IntegralCommodity(); integralCommodity.setCommodityId(merchandise.getId()); integralCommodity.setCommodityImg(merchandise.getProductImages()); integralCommodity.setCommodityName(merchandise.getName()); integralCommodity.setCommodityPrice(merchandise.getPrice()); commodity.add(integralCommodity); } } return commodity; } } cloud-server-activity/src/main/java/com/dsh/activity/controller/UserConponController.java
@@ -4,7 +4,7 @@ import com.dsh.activity.entity.Coupon; import com.dsh.activity.entity.UserCoupon; import com.dsh.activity.feignclient.model.CouponStuAvailableVo; import com.dsh.activity.service.CouponService; import com.dsh.activity.service.ICouponService; import com.dsh.activity.service.UserCouponService; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; @@ -26,7 +26,7 @@ private UserCouponService uconService; @Autowired private CouponService cService; private ICouponService cService; private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM"); cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
New file @@ -0,0 +1,135 @@ package com.dsh.activity.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; /** * <p> * 积分商品 * </p> * * @author jqs * @since 2023-07-04 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_points_merchandise") public class PointsMerchandise extends Model<PointsMerchandise> { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 类型(1=实体商品,2=课包商品,3=门票商品) */ private Integer type; /** * 商品名称 */ private String name; /** * 课包id */ private Integer coursePackageId; /** * 原价 */ private BigDecimal price; /** * 兑换方式(1=积分,2=现金+积分) */ private Integer redemptionMethod; /** * 所需现金 */ private BigDecimal cash; /** * 所属积分 */ private BigDecimal integral; /** * 商品封面 */ private String cover; /** * 商品图片 */ private String productImages; /** * 用户人群(1=全部用户,2=年度会员,3=已有学员用户) */ private Integer userPopulation; /** * 发放数量 */ private Integer quantityIssued; /** * 限领数量 */ private Integer pickUpQuantity; /** * 开始时间 */ private Date startTime; /** * 结束时间 */ private Date endTime; /** * 使用范围(1=全国,2=指定城市,3=指定门店) */ private Integer useScope; /** * 省 */ private String province; /** * 省编号 */ private String provinceCode; /** * 市 */ private String city; /** * 市编号 */ private String cityCode; /** * 兑换说明 */ private String redemptionInstructions; /** * 排序 */ private Integer sort; /** * 状态(1=正常,2=冻结,3=删除) */ private Integer state; /** * 添加时间 */ private Date insertTime; @Override protected Serializable pkVal() { return this.id; } } cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java
New file @@ -0,0 +1,17 @@ package com.dsh.activity.feignclient; import com.dsh.activity.feignclient.model.IntegralCommodity; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @FeignClient(value = "mb-cloud-activity") public interface MerChandiseClient { @PostMapping("/pointMerchars/convertGoods") public List<IntegralCommodity> getConvertibleGoods(); } cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/IntegralCommodity.java
New file @@ -0,0 +1,24 @@ package com.dsh.activity.feignclient.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data public class IntegralCommodity { @ApiModelProperty(value = "商品id") private Integer commodityId; @ApiModelProperty(value = "商品图片") private String commodityImg; @ApiModelProperty(value = "商品名称") private String commodityName; @ApiModelProperty(value = "商品价格") private BigDecimal commodityPrice; } cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
New file @@ -0,0 +1,16 @@ package com.dsh.activity.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsh.activity.entity.PointsMerchandise; /** * <p> * 积分商品 Mapper 接口 * </p> * * @author jqs * @since 2023-07-04 */ public interface PointsMerchandiseMapper extends BaseMapper<PointsMerchandise> { } cloud-server-activity/src/main/java/com/dsh/activity/mapper/xml/PointsMerchandiseMapper.xml
New file @@ -0,0 +1,6 @@ <?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="com.dsh.activity.mapper.PointsMerchandiseMapper"> </mapper> cloud-server-activity/src/main/java/com/dsh/activity/service/CouponService.java
File was deleted cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
New file @@ -0,0 +1,16 @@ package com.dsh.activity.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.activity.entity.PointsMerchandise; /** * <p> * 积分商品 服务类 * </p> * * @author jqs * @since 2023-07-04 */ public interface PointsMerchandiseService extends IService<PointsMerchandise> { } cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.dsh.activity.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.activity.entity.PointsMerchandise; import com.dsh.activity.mapper.PointsMerchandiseMapper; import com.dsh.activity.service.PointsMerchandiseService; import org.springframework.stereotype.Service; /** * <p> * 积分商品 服务实现类 * </p> * * @author jqs * @since 2023-07-04 */ @Service public class PointsMerchandiseServiceImpl extends ServiceImpl<PointsMerchandiseMapper, PointsMerchandise> implements PointsMerchandiseService { } cloud-server-activity/src/main/java/com/dsh/activity/web/PointsMerchandiseController.java
New file @@ -0,0 +1,21 @@ package com.dsh.activity.web; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * <p> * 积分商品 前端控制器 * </p> * * @author jqs * @since 2023-07-04 */ @RestController @RequestMapping("/points-merchandise") public class PointsMerchandiseController { } cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.other.entity.TImgConfig; import com.dsh.other.feignclient.model.UserBenefitImage; import com.dsh.other.service.TImgConfigService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -12,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** @@ -56,4 +58,36 @@ return imgConfig.getContent(); } @PostMapping("/imgConfig/getBenefitImage") public UserBenefitImage getImageConfig(){ UserBenefitImage image = new UserBenefitImage(); ArrayList<Integer> integers = new ArrayList<>(); integers.add(1); integers.add(2); List<TImgConfig> tImgConfigs = imgConfigService.getBaseMapper().selectList(new QueryWrapper<TImgConfig>() .notIn("position", integers)); if (tImgConfigs.size() > 0){ tImgConfigs.forEach(imgCg -> { switch (imgCg.getPosition()){ case 3: image.setMyConpons(imgCg.getContent()); break; case 4: image.setOnlineShop(imgCg.getContent()); break; case 5: image.setWeeksBenefit(imgCg.getContent()); break; case 6: image.setTodayFree(imgCg.getContent()); break; default: break; } }); } return image; } } cloud-server-other/src/main/java/com/dsh/other/feignclient/ImgConfigClient.java
@@ -1,6 +1,7 @@ package com.dsh.other.feignclient; import com.dsh.other.entity.TImgConfig; import com.dsh.other.feignclient.model.UserBenefitImage; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -11,4 +12,9 @@ @PostMapping("/imgConfig/getNoneStu") List<TImgConfig> getNoneStuImgs(); @PostMapping("/imgConfig/getBenefitImage") public UserBenefitImage getImageConfig(); } cloud-server-other/src/main/java/com/dsh/other/feignclient/model/UserBenefitImage.java
New file @@ -0,0 +1,22 @@ package com.dsh.other.feignclient.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class UserBenefitImage { @ApiModelProperty(value = "我的券包pic") private String myConpons; @ApiModelProperty(value = "线上商城pic") private String onlineShop; @ApiModelProperty(value = "本周福利pic") private String weeksBenefit; @ApiModelProperty(value = "今日免费pic") private String todayFree; }