112 lines
4.5 KiB
Java
112 lines
4.5 KiB
Java
package cn.unizk.controller;
|
|
|
|
|
|
import cn.unizk.entity.po.JkPhysio;
|
|
import cn.unizk.entity.po.JkStore;
|
|
import cn.unizk.entity.po.MobileAppUser;
|
|
import cn.unizk.entity.po.UserFreeTrialInfo;
|
|
import cn.unizk.entity.vo.AppUserDetailsVO;
|
|
import cn.unizk.entity.vo.MobileAppUserVO;
|
|
import cn.unizk.entity.vo.ResultData;
|
|
import cn.unizk.entity.vo.UniPage;
|
|
import cn.unizk.exception.ServiceException;
|
|
import cn.unizk.mapper.JkPhysioMapper;
|
|
import cn.unizk.mapper.MobileAppUserMapper;
|
|
import cn.unizk.mapper.StoreMapper;
|
|
import cn.unizk.mapper.UserFreeTrialInfoMapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
|
|
/**
|
|
* @Author hao
|
|
* @Date 2025/9/8 11:25
|
|
* @Version 1.0
|
|
**/
|
|
@RestController
|
|
@RequestMapping("/pc/wxUser")
|
|
public class WxUserController {
|
|
|
|
/* @Resource
|
|
private WxUserService wxUserService;
|
|
*/
|
|
@Resource
|
|
private MobileAppUserMapper mobileAppUserMapper;
|
|
@Resource
|
|
private UserFreeTrialInfoMapper userFreeTrialInfoMapper;
|
|
@Resource
|
|
private JkPhysioMapper jkPhysioMapper;
|
|
@Resource
|
|
private StoreMapper storeMapper;
|
|
|
|
|
|
@PostMapping("/list")
|
|
@PreAuthorize("hasRole('ADMIN')")
|
|
public Page<MobileAppUser> list(@RequestBody UniPage<MobileAppUserVO> uniPage){
|
|
Page<MobileAppUser> page = (Page<MobileAppUser>) uniPage.getPage();
|
|
LambdaQueryWrapper<MobileAppUser> queryWrapper = uniPage.buildQueryWrapper(query -> {
|
|
boolean hasKeyword = StringUtils.isNotBlank(query.getKeyword());
|
|
LambdaQueryWrapper<MobileAppUser> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(query.getId() != null, MobileAppUser::getId, query.getId())
|
|
.and(hasKeyword,w -> {
|
|
w.eq(hasKeyword, MobileAppUser::getPhoneNumber, query.getKeyword())
|
|
.or()
|
|
.like(hasKeyword, MobileAppUser::getNickname, query.getKeyword());
|
|
});
|
|
return wrapper;
|
|
});
|
|
return mobileAppUserMapper.selectPage(page,queryWrapper);
|
|
}
|
|
|
|
@GetMapping("/getUserDetails")
|
|
public AppUserDetailsVO getUserDetails(@RequestParam("appUserId") Integer appUserId){
|
|
UserFreeTrialInfo userFreeTrialInfo = userFreeTrialInfoMapper.selectOne(new LambdaQueryWrapper<UserFreeTrialInfo>()
|
|
.eq(UserFreeTrialInfo::getUserId, appUserId));
|
|
MobileAppUser user = mobileAppUserMapper.selectById(appUserId);
|
|
AppUserDetailsVO vo = new AppUserDetailsVO();
|
|
if (user.getFirstPhysioId() != null && user.getFirstStoreId() != null){
|
|
JkPhysio jkPhysio = jkPhysioMapper.selectById(user.getFirstPhysioId());
|
|
JkStore jkStore = storeMapper.selectById(user.getFirstStoreId());
|
|
vo.setFirstPhysioName(jkPhysio.getPhysioName());
|
|
vo.setFirstStoreName(jkStore.getStoreName());
|
|
}
|
|
if (Objects.isNull(userFreeTrialInfo)){
|
|
return vo;
|
|
}
|
|
vo.setSymptomPosition(userFreeTrialInfo.getSymptomPosition());
|
|
Map<Integer,String> castLevelMap = new HashMap<>();
|
|
castLevelMap.put(1,"轻度");
|
|
castLevelMap.put(2,"中度");
|
|
castLevelMap.put(3,"重度");
|
|
vo.setStrainLevel(castLevelMap.get(userFreeTrialInfo.getStrainLevel()));
|
|
vo.setRestrict(castLevelMap.get(userFreeTrialInfo.getRestrictedDegree()));
|
|
castLevelMap.clear();
|
|
castLevelMap.put(1,"低");
|
|
castLevelMap.put(2,"中");
|
|
castLevelMap.put(3,"高");
|
|
vo.setConsumptionLevel(castLevelMap.get(userFreeTrialInfo.getConsumptionLevel()));
|
|
return vo;
|
|
}
|
|
|
|
@PostMapping("/writeOff")
|
|
public ResultData writeOff(@RequestParam("appUserId") Integer appUserId){
|
|
UserFreeTrialInfo userFreeTrialInfo = userFreeTrialInfoMapper.selectOne(new LambdaQueryWrapper<UserFreeTrialInfo>()
|
|
.eq(UserFreeTrialInfo::getUserId, appUserId));
|
|
if (Objects.isNull(userFreeTrialInfo)){
|
|
throw new ServiceException("用户尚未填写首次免费体验信息,无法核销!");
|
|
}
|
|
MobileAppUser user = new MobileAppUser();
|
|
user.setId(appUserId);
|
|
user.setFreeTrial(0);
|
|
mobileAppUserMapper.updateById(user);
|
|
return ResultData.success();
|
|
}
|
|
}
|